Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Graphics rendering typically involves generating images and/or video. For example, video games generally involve real-time graphics rendering to generate video as a video game is played. The generated video may reflect, for example, video game objects and scenery as a player interacts with a video game environment, as well as player actions, actions of multiple other players in a multi-player game, and/or other actions or events that may occur in the video game environment. Real-time graphics rendering may also be performed in a wide variety of other, non-video game applications.
A large amount of the video currently streamed over the Internet is not rendered in real-time, or may have been recorded without any graphics rendering at all. For example, many videos available from websites such as YOUTUBE®, news websites, social network websites, and a great many other websites, as well as movies and television shows available from services such as NETFLIX®, include pre-recorded or otherwise previously rendered videos that may be streamed without real-time graphics rendering operations. Such videos may be streamed to client devices directly from datacenters that host the websites or services themselves, such as the datacenters hosting the YOUTUBE® website or the NETFLIX® service, or such videos may be streamed to client devices from any of multiple distributed Content Delivery Network (CDN) servers deployed in multiple data centers across the Internet. By storing video files at distributed CDN servers, network loads and costs associated with data delivery can be reduced.
Furthermore, pre-recorded or otherwise previously rendered videos delivered to a client device may optionally be stored at the client device, or within a Local Area Network (LAN) to which the client device may be connected, for subsequent replay. Such local storing and subsequent replay operations may also be accomplished without need for any real-time graphics rendering operations.
Meanwhile, video content that is rendered in real-time or near real-time prior to streaming is currently limited to streaming from datacenters hosting the website or service that interacts with the client. Because it is rendered in real-time, such video content also cannot be usefully stored in a LAN for subsequent replay. For example, a multiplayer video game application may render graphics at a central datacenter, and may stream real-time rendered video content from the central datacenter hosting the video game application to the various client devices operated by players of the video game. Datacenter or cloud-based applications that conduct real-time graphics rendering for multiplayer games are currently unable to leverage devices other than those at the central datacenter for delivery of real-time rendered video. One result is that real-time rendered video content may on average travel longer network distances than pre-recorded video content; real-time rendered video content may on average travel across more expensive network infrastructure than pre-recorded video content; and real-time rendered video content may on average travel across network infrastructure that is burdened with higher loads than the network infrastructure carrying pre-recorded video content.